#include <iostream>
#include <string>
#include "Object.h"
#include "Plant.h"
#include "Cabai.h"
using namespace std;

int main() {
	Kalendar::SetMusim(1);
	Cabai cabe;
	cabe.SetX(6);
	cabe.SetY(7);
	cout << cabe.GetX() << endl;
	cout << cabe.GetY() << endl;
	cabe.SetX(3);
	cabe.SetY(5);
	cout << cabe.GetX() << endl;
	cout << cabe.GetY() << endl;
	cout << "tipe object : " << cabe.getObjectType()<< endl;
	cout << "Musim tumbuh : " << cabe.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe.GetUmur() << endl;
	cout << "happy meter : " << cabe.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe.isMati() << endl;
	
	cout << endl;
	cout << "keesokan harinya..." << endl;
	cout << endl;
	cabe.grow();
	
	cout << "Musim tumbuh : " << cabe.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe.GetUmur() << endl;
	cout << "happy meter : " << cabe.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe.isMati() << endl;
	
	cout << endl;
	cout << "setelah disiram..." << endl;
	cout << endl;
	cabe.watered();
	
	cout << "Musim tumbuh : " << cabe.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe.GetUmur() << endl;
	cout << "happy meter : " << cabe.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe.isMati() << endl;
	
	cout << endl;
	cout << "setelah disiram..." << endl;
	cout << endl;
	cabe.watered();
	
	cout << "Musim tumbuh : " << cabe.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe.GetUmur() << endl;
	cout << "happy meter : " << cabe.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe.isMati() << endl;
	
	cout << endl;
	cout << "keesokan harinya...(dan disiram)" << endl;
	cout << endl;
	cabe.grow();
	cabe.watered();
	
	cout << "Musim tumbuh : " << cabe.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe.GetUmur() << endl;
	cout << "happy meter : " << cabe.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe.isMati() << endl;
	
	cabe.grow();
	cabe.watered();
	cabe.grow();
	cabe.watered();
	cabe.grow();
	cabe.watered();
	cabe.grow();
	cabe.watered();
	cabe.grow();
	cabe.watered();
	cabe.grow();
	cabe.watered();
	cabe.grow();
	cabe.watered();
	cabe.grow();
	cabe.watered();
	
	cout << endl;
	cout << "setelah 8 hari dan 8 kali disiram..." << endl;
	cout << endl;
	
	cout << "Musim tumbuh : " << cabe.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe.GetUmur() << endl;
	cout << "happy meter : " << cabe.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe.isMati() << endl;
	
	cabe.SetUmur(10);
	cabe.SetHappyMeter(20);
	
	cout << endl;
	cout << "setelah dirubah" << endl;
	cout << endl;
	
	cout << "Musim tumbuh : " << cabe.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe.GetUmur() << endl;
	cout << "happy meter : " << cabe.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe.isMati() << endl;
	
	cabe.SetHappyMeter(19);
	
	cout << "setelah dirubah" << endl;
	cout << "Musim tumbuh : " << cabe.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe.GetUmur() << endl;
	cout << "happy meter : " << cabe.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe.isMati() << endl;
	
	//cabe.SetUmur(0);
	
	
	cout << "setelah dirubah" << endl;
	cout << "Musim tumbuh : " << cabe.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe.GetUmur() << endl;
	cout << "happy meter : " << cabe.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe.isMati() << endl;
	
	
	//copy constructor
	cabe.watered();
	Cabai cabe2 = cabe;
	cout << "-----copy constructor----" << endl;
	cout << "setelah dirubah" << endl;
	cout << "Musim tumbuh : " << cabe2.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe2.GetUmur() << endl;
	cout << "happy meter : " << cabe2.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe2.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe2.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe2.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe2.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe2.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe2.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe2.isMati() << endl;
	
	cout << endl;
	cout << "coba musim..." << endl;
	cout << endl;
	
	cabe.grow();
	cout << "Musim tumbuh : " << cabe.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe.GetUmur() << endl;
	cout << "happy meter : " << cabe.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe.isMati() << endl;
	
	cout << "musim apa sekarang?" << Kalendar::GetMusim() << endl;
	Kalendar::SetMusim(0);
	cout << "musim apa sekarang?" << Kalendar::GetMusim() << endl;
	cout << "musim apa sekarang?" << Kalendar::GetMusim() << endl;
	cabe.grow();
	cout << "Musim tumbuh : " << cabe.GetMusimTumbuh() << endl;
	cout << "Umur : " << cabe.GetUmur() << endl;
	cout << "happy meter : " << cabe.GetHappyMeter() << endl;
	cout << "id tanaman : " << cabe.GetPlantId() << endl;
	cout << "sudah disiram? : " << cabe.isWatered() << endl;
	cout << "apakah tanaman ini bisa dipanen lebih dari sekali? : " << cabe.isRepanenable() << endl;
	cout << "apakah bibit(sudah tanam)? : " << cabe.isSeed() << endl;
	cout << "apakah tanaman sudah dewasa? : " << cabe.isMature() << endl;
	cout << "apakah tanaman siap panen? : " << cabe.isHarvest() << endl;
	cout << "apakah tanaman ini sudah mati? : " << cabe.isMati() << endl;
	return 0;
}

